package nespresso.beans;

import java.sql.Statement;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class Ligne {
	public String id;
	private String id_capsule;
	private String id_user;
	private int nb_capsule;
	private float montant;
	private String id_commande;
	
	private Ligne ligneSuivante;
	
	private Log log;
	
	// Chargement d'une nouvelle ligne dans le cadre du chargement d'une commande
	public Ligne(String l, String cap, String usr, int ncap, float mont, String idcom) {
		log = LogFactory.getLog(Ligne.class);
		id = l; id_capsule = cap; id_user = usr;
		nb_capsule = ncap; montant = mont; id_commande = idcom;

		
	}
	
	// Nouvelle ligne vierge
	public Ligne() {
		log = LogFactory.getLog(Ligne.class);		
	}
	
	public Ligne GetSuivante() {
		return ligneSuivante;
	}
	
	public void SetSuivante(Ligne ligne) {
		this.ligneSuivante = ligne;
	}
	
	public String GetId() {
		return id;
	}
	
	public void SetId(String id) {
		this.id = id;
	}
	
	public String GetIdcapsule() {
		return id_capsule;
	}
	
	public void SetIdcapsule(String id_capsule) {
		this.id_capsule = id_capsule;
	}
	
	public String GetIduser() {
		return id_user;
	}
	
	public void SetIduser(String id_user) {
		this.id_user = id_user;
	}

	public void SetIdcommande(String id_commande) {
		this.id_commande = id_commande;
	}
	
	public String GetIdcommande() {
		return id_commande;
	}
	
	public int GetNbcapsule() {
		return nb_capsule;
	}
	
	public void SetNbcapsule(int nb_capsule) {
		this.nb_capsule = nb_capsule;
	}
	
	public float GetMontant() {
		return montant;
	}
	
	public void SetMontant(float montant) {
		this.montant = montant;
	}
	
	public String GetNomprenom() { // Retourne le prénom et nom du user concerné par la ligne de  commande
		String nomprenom;
		Base u = new Base();
		u.GetResultat("users", "id", this.id_user); u.Suivant();
		nomprenom = u.GetTexte("PRENOM") + " " + u.GetTexte("NOM");
		u.Free();
		return nomprenom;
	}
	
	public String UpdateLigne() {
		String ok = new String("Mise à jour réussie !");
		Base bl = new Base();
		if(!bl.UpdateLigne(this)) ok = "Echec de la mise à jour !";
		bl.Free();
		return ok;
	}
	
	public String InsertLigne() {
		String ok = new String("Ajout de la ligne réussi !");
		Base bl = new Base();
		if((this.id = bl.InsertLigne(this)) == null) ok = "Echec de l'ajout de la ligne !";
		bl.Free();
		return ok;		
	}
	
	public String DeleteLigne(Commande c) {
		String ok = new String("Suppression de la ligne réussie !");
		Base bl = new Base();
		if(!bl.DeleteLigne(c, this.GetId())) ok = "Erreur lors de la suppression de la ligne";
		bl.Free();
		return ok;
	}
}
